12 research outputs found

    Proving Termination of C Programs with Lists

    Full text link
    There are many techniques and tools to prove termination of C programs, but up to now these tools were not very powerful for fully automated termination proofs of programs whose termination depends on recursive data structures like lists. We present the first approach that extends powerful techniques for termination analysis of C programs (with memory allocation and explicit pointer arithmetic) to lists.Comment: Full version of a paper which appeared in the Proceedings of CADE 202

    Automated Termination Proofs for C Programs with Lists (Short WST Version)

    Full text link
    There are many techniques and tools for termination of C programs, but up to now they were not very powerful for termination proofs of programs whose termination depends on recursive data structures like lists. We present the first approach that extends powerful techniques for termination analysis of C programs (with memory allocation and explicit pointer arithmetic) to lists.Comment: Presented at WST 2023, short version of arXiv:2305.1215

    Inferring Lower Bounds for Runtime Complexity

    Get PDF
    We present the first approach to deduce lower bounds for innermost runtime complexity of term rewrite systems (TRSs) automatically. Inferring lower runtime bounds is useful to detect bugs and to complement existing techniques that compute upper complexity bounds. The key idea of our approach is to generate suitable families of rewrite sequences of a TRS and to find a relation between the length of such a rewrite sequence and the size of the first term in the sequence. We implemented our approach in the tool AProVE and evaluated it by extensive experiments

    Automatically proving termination and memory safety for programs with pointer arithmetic

    Get PDF
    While automated verification of imperative programs has been studied intensively, proving termination of programs with explicit pointer arithmetic fully automatically was still an open problem. To close this gap, we introduce a novel abstract domain that can track allocated memory in detail. We use it to automatically construct a symbolic execution graph that over-approximates all possible runs of a program and that can be used to prove memory safety. This graph is then transformed into an integer transition system, whose termination can be proved by standard techniques. We implemented this approach in the automated termination prover AProVE and demonstrate its capability of analyzing C programs with pointer arithmetic that existing tools cannot handle

    Analyzing program termination and complexity automatically with AProVE

    Get PDF
    In this system description, we present the tool AProVE for automatic termination and complexity proofs of Java, C, Haskell, Prolog, and rewrite systems. In addition to classical term rewrite systems (TRSs), AProVE also supports rewrite systems containing built-in integers (int-TRSs). To analyze programs in high-level languages, AProVE automatically converts them to (int-)TRSs. Then, a wide range of techniques is employed to prove termination and to infer complexity bounds for the resulting rewrite systems. The generated proofs can be exported to check their correctness using automatic certifiers. To use AProVE in software construction, we present a corresponding plug-in for the popular Eclipse software development environment

    AProVE : Termination and Memory Safety of C Programs ; (competition contribution)

    No full text

    Homology modelling and active-site-mutagenesis study of the catalytic domain of the pneumococcal phosphorylcholine esterase

    No full text
    Streptococcus pneumoniae is among the major human pathogens. Several interactions of this bacterium with its host appear to have been mediated by bacterial cell wall components. Specifically, phosphorylcholine residues covalently attached to teichoic and lipoteichoic acids serve as anchors for many surface-located proteins (choline-binding proteins CBPs), including cell-adhesion and virulence factors, and are also recognized by host response components through choline-binding receptors. In this study, we have performed modelling of the catalytic domain of pneumococcal phosphorylcholine esterase (Pce), a modular enzyme that is capable of removing phosphorycholine residues from teichoic and lipoteichoic acids, remodelling their distribution on the bacterial envelope. We wish to contribute to the structural knowledge of Pce. In this pursuit, 3D models of Pce have been established by homology modelling, using the X-ray structure of enzymes from the α/β metallo-lactamase family fold as templates. Theoretical models of pneumococcal phosphorylcholine esterase (Pce) catalytic modules obtained by homology modelling, and corresponding docking studies employed to find out the residues involved in the binding of Zn ions, are discussed according to mutational studies and ab initio calculations. The presence of a binuclear Zn cluster in the catalytic domain of Pce and a likely coordination model are proposed. © 2005 Elsevier Ltd. All rights reserved.Peer Reviewe
    corecore